// ? Element 常用表单校验规则

/**
 *  @rule 手机号
 */
export function checkPhoneNumber(rule: any, value: any, callback: any) {
  const regexp = /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[3-8]{1})|(18[0-9]{1})|(19[0-9]{1})|(14[5-7]{1}))+\d{8})$/;
  if (value === "") callback("请输入手机号码");
  if (!regexp.test(value)) {
    callback(new Error("请输入正确的手机号码"));
  } else {
    return callback();
  }
}
/**
 *  @rule 传真
 */
export function isTelOrFax(rule: any, value: any, callback: any) {
  console.log("fddddddddddddddd");
  console.log(value);
  if (value === "") {
    return callback();
  } else {
    const reg = /^(\d{3,4}-)?\d{7,8}$/;
    const isTel = reg.test(value);
    if (!isTel) {
      //判断传真字符范围是在10到13
      return callback(new Error("座机或传真格式如:0376-1234567"));
    } else {
      return callback();
    }
  }
}

export function isEmail(rule: any, value: any, callback: any) {
  if (!value) {
    callback();
  } else {
    const reg = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/;
    const isTel = reg.test(value);
    if (!isTel) {
      //判断传真字符范围是在10到13
      return callback(new Error("请输入正确邮箱"));
    } else {
      return callback();
    }
  }
}

export function password(rule: any, value: any, callback: any) {
  if (value == "") {
    callback("请输入密码");
  } else {
    const reg = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%^&*?]{8,16}$/;
    const isTel = reg.test(value);
    if (!isTel) {
      //判断传真字符范围是在10到13
      return callback(new Error("'8-16位，至少含数字/字母/特殊字符中的两种'"));
    } else {
      return callback();
    }
  }
}
